package com.fcml.pattern.observer;

import com.fcml.pattern.observer.observer.Observer;
import com.fcml.pattern.observer.observer.User;
import com.fcml.pattern.observer.subject.WeChatSubject;

import java.util.HashSet;

/**
 * @author fcml
 * @date 2018/11/3
 */
public class App {

    public static void main(String[] args) {
        // 创建被观察者
        WeChatSubject subject = new WeChatSubject(new HashSet<>());
        // 创建观察者
        Observer observer1 = new User("小明");
        Observer observer2 = new User("小黑");
        // 观察者观察/订阅被观察者（主题）
        subject.registerObserver(observer1);
        subject.registerObserver(observer2);

        // 主题推送消息
        subject.setPublishMessage("PHP是世界上最好的语言！");
        System.out.println("-------------------------------");
        // 某个观察者不再观察主题
        subject.removeObserver(observer2);
        subject.setPublishMessage("PHP是世界上最好的语言！");
    }
}
